import { Language } from "../../enum";

export const codeTemplate = {
    /*------------------------------------------------------*/
    /* 代码分析 */

    codeAnalyzer: {
        [Language.Chinese]: `
提供以下代码的详细说明：
{code}

说明应包括:

模块和类:
- 列出所需的模块。
- 详述这些模块中的类、它们的属性和方法。
- 阐明每个类的目的和运作方式。

数据结构:
- 确定所需的数据结构。
- 描述它们的名称、属性和操作。

主程序流程:
- 概述程序的主要流程。
- 强调在主要文件(如main.py、app.js)中初始化和调用其他模块、类和方法的顺序。
- 澄清运行时的逻辑流程。

输入与输出:
- 指定程序接受输入的方式，无论是来自用户还是外部源。
- 详细说明软件预期的输出或行为。

异常处理:
- 指导如何管理执行期间可能出现的异常或异常情况，以确保稳定和健壮。

外部库和依赖项:
- 明确列出必要外部库或依赖项、版本及其功能。

其他说明:
- 请提供任何其他需要补充的说明。
- 如果不完整或存在缺陷，请提出意见。
- 请直接输出说明。
`
    },

    /*------------------------------------------------------*/
    /* 代码概括 */

    codeAbstractor: {
        [Language.Chinese]: `
请提供以下代码或文档的总结:

{code}

总结应满足:

内容要求:
- 代码或文档的总体概述、理解。
- 主要流程信息。
- 列举关键类、方法、属性等信息。
- 列出关键外部依赖与库的作用。
- 其他重要信息。

输出要求:
- 突出重点，避免细节，精简内容。
- 简洁、明了、客观。
- 请直接输出总结。
- 在300字以内。
`
    },
    codeAbstractorStep: {
        [Language.Chinese]: `
因为代码或文档内容较多，我们将截断并分片提供，你需要概述每一片内容，最终根据每一段概述提供高层次的总结。
总共有{codeCount}段内容需要概述，这是第{codeIndex}段。

{code}

内容要求:
- 代码或文档的总体概述、理解。
- 主要流程信息。
- 列举关键类、方法、属性等信息。
- 列出关键外部依赖与库的作用。
- 其他重要信息。

**截断处理**:
- 明确指出截断发生的位置，位于哪些方法、类、或语句当中
- 明确指出截断使哪些部分无法理解

输出要求:
- 突出重点，避免细节，精简内容。
- 简洁、明了、客观。
- 请直接输出总结。
- 在300字以内。
`
    },
    codeAbstractorStepStatistical: {
        [Language.Chinese]: `
这是第{codeIndex}段代码的总结:

{code}
`
    },
    codeAbstractorStepInstructions: {
        [Language.Chinese]: `
因数量较多，代码会分片总结后提供，你需要根据所有总结提供一个高层次的总结。
`
    },

    /*------------------------------------------------------*/
    /* 文件夹总结 */

    codeFolderAbstractor: {
        [Language.Chinese]: `
请根据文件夹中的文件摘要给出文件夹概述:

{code}

输出要求:
- 简洁明了客观。
- 请直接输出总结。
`
    },
    codeFolderAbstractorStep: {
        [Language.Chinese]: `
因文件内容较多，所以我们将分片提供摘要，你需要据此给出文件夹概述。
总共有{codeCount}片摘要需要概述，这是第{codeIndex}片。

{code}

输出要求:
- 简洁明了客观。
- 请直接输出总结。

**截断处理**:
- 明确指出截断发生的位置，位于哪个文件的摘要中
- 明确指出截断使哪些部分无法理解
`
    },
    codeFolderAbstractorStepStatistical: {
        [Language.Chinese]: `
这是第{codeIndex}段摘要的总结:

{code}
        `
    },
    codeFolderAbstractorStepInstructions: {
        [Language.Chinese]: `
因数量较多，摘要会分片提供，你需要根据所有总结提供一个高层次的总结。
`
    },

    /*------------------------------------------------------*/
    /* 代码总结 */

    codeSummarizer: {
        [Language.Chinese]: `
提供以下代码的高层次概述:
{code}

概述应包括:

- 核心功能与高层设计。
- 主要模块、数据流与架构。
- 输入输出、异常处理。
- 其他重要特性。

注意:
- 突出重点，避免细节，精简内容。
- 简洁明了客观。
- 请直接输出概述。
`
    },
    codeSummarizerSummary: {
        [Language.Chinese]: `
请将以下多个代码概述合并成一个更高层次的总结:
{summarys}

总结应包括:

- 简短概括主要功能与目的。
- 描述整体架构。
- 简要列出关键外部依赖与库的作用。
- 强调任何值得注意的功能或非功能性要求(如性能、可扩展性)。
- 其他需要注意的事项。

注意:
- 突出重点，避免细节。
- 简洁明了客观。
- 请直接输出概述。
`
    }
};
